home *** CD-ROM | disk | FTP | other *** search
- Hinweise zu Little Net
-
- Little Net arbeitet mit der MIDI-Schnittstelle des ATARI ST. Da es
- sich dabei um eine Stromschnittstelle (etwa 5mA) mit galvanischer
- Trennung ber Optokoppler handelt, sind auch grere Entfernungen
- problemlos zu berwinden. Dreiig bis vierzig Meter sollten kein
- Problem sein!
-
- Little Net wird als Laufwerk installiert. Alle Dateizugriffe
- erfolgen ber Laufwerk N. Little Net installiert sich daher
- zunchst einmal, hnlich wie eine Ramfloppy oder Festplatte, ber
- die HDV-Vektoren. In folgende Vektoren klinkt sich Little Net ein:
-
- hdv_bpb: ($472) Vektor zum Holen des Bios-Parameter-Blocks
- hdv_rw: ($476) Vektor zum Lesen / Schreiben eines Sektors
- hdv_mediach: ($47E) Vektor fr Media Change Routine
-
- Will man nun ber Laufwerk N auf ein Laufwerk des anderen
- Rechners zugreifen, so geschieht folgendes. Zuerst wird wahrschein-
- lich eine BPB-Anforderung durchgefhrt. Dazu wird das Telegramm 1
- abgeschickt und als Antwort auf das Telegramm 2 gewartet. Erhlt
- man das Telegramm 7 zurck, so ist etwas falsch gelaufen, und der
- BPB wird erneut angefordert. Sektor lesen und schreiben erfolgt
- nun analog ber die Telegramme 5 und 6 bzw. 3 und 4. Media Change
- geschieht nicht ber einen Telegrammaustausch, sondern wird durch
- ffnen der Dialogbox abgehandelt (siehe auch Beschreibung Little
- Net).
-
- Wie erfolgt nun das Verschicken der Telegramme im einzelnen?
- Ausgangspunkt ist immer eine HDV-Routine. Hier wird das
- Anforderungstelegramm in einen Buffer gelegt, und die
- Sendeinterrupts freigegeben. Das Senden und Empfangen aller
- Telegramme erfolgt voll im Interrupt, damit beide ATARI mglichst
- wenig gebremst werden. Der andere ST empfngt nun also das
- Telegramm im Interrupt, legt es in einen Buffer und setzt ein
- Flag. Eine Telegrammauswertung im Interrupt ist ja leider nicht
- mglich, da man hier das Betriebssystem nicht aufrufen darf.
- Little Net klinkt sich deshalb in den BIOS-Trap ein und schaut bei
- jedem Bios-Aufruf nach, ob ein Telegramm angekommen ist. Wenn ja,
- wird das Telegramm beantwortet. Normalerweise macht jedes Programm
- einige 100 bis 1000 Bios-Aufrufe pro Sekunde, so da eine prompte
- Antwort nicht ausbleibt. Sollte das Little Net aber einmal nicht
- funktionieren, so luft wahrscheinlich ein Programm, das vllig am
- Betriebssystem vorbei programmiert ist, und keine BIOS-Aufrufe
- durchfhrt.
-
- Einen Sonderfall bildet noch das Telegramm 8 (Message senden).
- Dieses Telegramm wird direkt aus dem Accessorie heraus abgesendet,
- und es erwartet keine Antwort. Das Telegramm wird am anderen ST
- auch nicht durch einen Bios-Aufruf ausgewertet, sondern durch
- einen Timer-Event. Dies funktioniert natrlich nur in
- GEM-Programmen. Die Meldung erscheint also erst auf dem anderen
- ST, wenn dort eine GEM-Applikation luft.
-
- Noch etwas zum allgemeinen Telegrammaufbau. Vor jedem Telegramm
- werden 2 Sync-, nach jedem Telegramm werden 3 Sync-Bytes 0
- geschickt. Dadurch ist gewhrleistet, da der andere ST sich auf
- die Kennung synchronisiert. Nun wird dreimal das Kennbyte des
- Telegramms verschickt. Dies geschieht dreimal um auch bei einem
- evt. bertragungsfehler eindeutig den Telegrammtyp bestimmen zu
- knnen. Aus dem Telegrammtyp bestimmt die Empfangsroutine nmlich
- die Zahl der Zeichen die noch folgen. Am Ende eines jeden
- Telegramms steht noch eine 16 Bit Checksumme. Sollte diese nicht
- stimmen, so wird mit Telegramm 7 negativ geantwortet.
-
-
-
-
- Aufbau der Telegramme
- =====================
-
- 1.) BPB anfordern: 3 Byte Kennung (F0) -> Lnge 3
- 1 Byte Laufwerk (0...)
- 2 Byte Checksumme
-
- 2.) BPB senden: 3 Byte Kennung (D2) -> Lnge 25
- 1 Byte Laufwerk (0...)
- 1 Byte Status (0 = OK / FF = Fehler)
- 20 Byte BPB
- 1 Byte Dummy
- 2 Byte Checksumme
-
- 3.) Sektor schreiben: 3 Byte Kennung (B4) -> Lnge 517
- 1 Byte Laufwerk (0...)
- 2 Byte Sektornummer (0...)
- 512 Byte Sektor
- 2 Byte Checksumme
-
- 4.) Schreibbestt.: 3 Byte Kennung (96) -> Lnge 7
- 1 Byte Laufwerk (0...)
- 2 Byte Sektornummer (0...)
- 1 Byte Status (0=OK / neg.=Fehler)
- 1 Byte Dummy
- 2 Byte Checksumme
-
- 5.) Sektor anfordern: 3 Byte Kennung (78) -> Lnge 5
- 1 Byte Laufwerk (0...)
- 2 Byte Sektornummer (0...)
- 2 Byte Checksumme
-
- 6.) Sektor lesen: 3 Byte Kennung (5A) -> Lnge 519
- 1 Byte Laufwerk (0...)
- 2 Byte Sektornummer (0...)
- 1 Byte Status (0=OK / neg.=Fehler)
- 512 Byte Sektor
- 1 Byte Dummy
- 2 Byte Checksumme
-
- 7.) negative Bestt.: 3 Byte Kennung (1E) -> Lnge 3
- 1 Byte Dummy
- 2 Byte Checksumme
-
- 8.) Message senden: 3 Byte Kennung (3c) -> Lnge 63
- 30 Byte Zeile 1
- 30 Byte Zeile 2
- 1 Byte Dummy
- 2 Byte Checksumme
-
-
-
-